home *** CD-ROM | disk | FTP | other *** search
/ C & C++ Multimedia Cyber Classroom / C and C++ Multimedia Cyber Classroom (Prentice Hall) (1998).iso / cpphtp2 / code.jar / code / ch03 / fig03_10.txt < prev    next >
Text File  |  1998-02-27  |  2KB  |  65 lines

  1. 1   // Fig. 3.10: fig03_10.cpp
  2. 2   // Craps
  3. 3   #include <iostream.h>
  4. 4   #include <stdlib.h>
  5. 5   #include <time.h>
  6. 6   
  7. 7   int rollDice( void );   // function prototype
  8. 8   
  9. 9   int main()
  10. 10  {
  11. 11     enum Status { CONTINUE, WON, LOST };
  12. 12     int sum, myPoint;
  13. 13     Status gameStatus;
  14. 14  
  15. 15     srand( time( NULL ) );
  16. 16     sum = rollDice();            // first roll of the dice
  17. 17  
  18. 18     switch ( sum ) {
  19. 19        case 7: 
  20. 20        case 11:                  // win on first roll
  21. 21           gameStatus = WON;
  22. 22           break;
  23. 23        case 2: 
  24. 24        case 3: 
  25. 25        case 12:                  // lose on first roll
  26. 26           gameStatus = LOST;
  27. 27           break;
  28. 28        default:                  // remember point
  29. 29           gameStatus = CONTINUE;
  30. 30           myPoint = sum;
  31. 31           cout << "Point is " << myPoint << endl;
  32. 32           break;                 // optional
  33. 33     }
  34. 34  
  35. 35     while ( gameStatus == CONTINUE ) {    // keep rolling
  36. 36        sum = rollDice();
  37. 37  
  38. 38        if ( sum == myPoint )       // win by making point
  39. 39           gameStatus = WON;
  40. 40        else
  41. 41           if ( sum == 7 )          // lose by rolling 7
  42. 42              gameStatus = LOST;
  43. 43     }
  44. 44  
  45. 45     if ( gameStatus == WON )
  46. 46        cout << "Player wins" << endl;
  47. 47     else
  48. 48        cout << "Player loses" << endl;
  49. 49  
  50. 50     return 0;
  51. 51  }
  52. 52  
  53. 53  int rollDice( void )
  54. 54  {
  55. 55     int die1, die2, workSum;
  56. 56  
  57. 57     die1 = 1 + rand() % 6;
  58. 58     die2 = 1 + rand() % 6;
  59. 59     workSum = die1 + die2;
  60. 60     cout << "Player rolled " << die1 << " + " << die2
  61. 61          << " = " << workSum << endl;
  62. 62  
  63. 63     return workSum;
  64. 64  }
  65.